using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using System.IO;
using FEL.BOD;

public partial class BOD_BOD_ARCHIVO_PLANO_DOCUMENTO : PaginaBaseFormView 
{
    private bool _guardarFichero = false;
    private string _pathBorrar = string.Empty;
    private string _idBodArchivoPlanoDoc = string.Empty;
    private const string _formatoJavaScriptExisteAyuda =
            @"javascript:window.open('{0}','_blank','left=590,top=280,width=290,height=110,toolbar=no,menubar=no,resizable=no,scrollbars=no,status=no');return false;";

    protected override Type TipoObjeto
    {
        get { return typeof(Bod_Archivo_Plano_Documento); }
    }

    protected override FormView Fv
    {
        get { return fvbod_archivo_plano_documento; }
    }

    protected override ObjectDataSource OdsDv
    {
        get { return odsfvbod_archivo_plano_documento; }
    }

    protected override string Contenedor
    {
        get { return "BOD_ARCHIVO_PLANO_DOCUMENTO"; }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        base.Page_Load(sender, e);
        OdsDv.Updating += new ObjectDataSourceMethodEventHandler(odsfvbod_archivo_plano_documentoUpdating);
        Fv.ItemUpdated += new FormViewUpdatedEventHandler(Fv_Updatedbod_archivo_plano_documentoUpdated);        
        fvbod_archivo_plano_documento.DataBound += new EventHandler(fvbod_archivo_plano_documento_DataBound);       
    }
    
    void odsfvbod_archivo_plano_documentoUpdating(object sender, ObjectDataSourceMethodEventArgs e)
    {
        List<DictionaryEntry> parametros = (List<DictionaryEntry>)e.InputParameters["parametros"];       

        parametros[BuscarParametro(parametros, "Extension")] = new DictionaryEntry("Extension", ".txt");        
    }   

    private int BuscarParametro(List<DictionaryEntry> parametros, string key)
    {
        for (int i = 0; i < parametros.Count; i++)
        {
            if (parametros[i].Key.ToString() == key)
                return i;
        }
        return -1;
    }   
    
    private void fvbod_archivo_plano_documento_DataBound(object sender, EventArgs e)
    {
        if (Fv.CurrentMode == FormViewMode.Edit)
        {
            string urlServicios = ConfigurationManager.AppSettings["URL_Servicios"];
            Button btnsubir = ((Button)Fv.FindControl("btnsubir"));
            btnsubir.OnClientClick = string.Format(_formatoJavaScriptExisteAyuda, urlServicios + "BOD/BOD_ARCHIVO_PLANO.aspx?Fichero=" + ((TextBox)Fv.FindControl("Id")).Text);
            Button btnbajar = ((Button)Fv.FindControl("btnbajar"));
            btnbajar.OnClientClick = string.Format(_formatoJavaScriptExisteAyuda, urlServicios + "BOD/BOD_ARCHIVO_PLANO.aspx?Bajar=" + ((TextBox)Fv.FindControl("Id")).Text);

        }        
    }

    void Fv_Updatedbod_archivo_plano_documentoUpdated(object sender, FormViewUpdatedEventArgs e)
    {
    }
    
    void BorrarArchivo(string path)
    {
        if (string.IsNullOrEmpty(path)) return;

        try
        {
            File.Delete(Server.MapPath(path));
        }
        catch
        { }
    }
    
    private string ReturnExtension(string fileExtension)
    {
        switch (fileExtension)
        {
            case ".htm":
            case ".html":
            case ".log":
                return "text/HTML";
            case ".txt":
                return "text/plain";
            case ".doc":
                return "application/ms-word";
            case ".tiff":
            case ".tif":
                return "image/tiff";
            case ".asf":
                return "video/x-ms-asf";
            case ".avi":
                return "video/avi";
            case ".zip":
                return "application/zip";
            case ".xls":
            case ".csv":
                return "application/vnd.ms-excel";
            case ".gif":
                return "image/gif";
            case ".jpg":
            case "jpeg":
                return "image/jpeg";
            case ".bmp":
                return "image/bmp";
            case ".wav":
                return "audio/wav";
            case ".mp3":
                return "audio/mpeg3";
            case ".mpg":
            case "mpeg":
                return "video/mpeg";
            case ".rtf":
                return "application/rtf";
            case ".asp":
                return "text/asp";
            case ".pdf":
                return "application/pdf";
            case ".fdf":
                return "application/vnd.fdf";
            case ".ppt":
                return "application/mspowerpoint";
            case ".dwg":
                return "image/vnd.dwg";
            case ".msg":
                return "application/msoutlook";
            case ".xml":
            case ".sdxl":
                return "application/xml";
            case ".xdp":
                return "application/vnd.adobe.xdp+xml";
            default:
                return "application/octet-stream";
        }
    }

    protected override void DefinirParametrosFijosDeInsercion(List<DictionaryEntry> param)
    {
        
        param.Add(new DictionaryEntry("Bod_Archivo_Plano_Id", Request.QueryString["Bod_Archivo_Plano_Id"]));

        base.DefinirParametrosFijosDeInsercion(param);
    }

    protected override void AsignarParametrosDataSourceDeatailsView(string id)
    {
        OdsDv.SelectParameters["Bod_Archivo_Plano_Id"].DefaultValue = id;
    }

    protected void Btn_Bod_Archivo_Plano_Click(object sender, EventArgs e)
    {
        TextBox BodArchivoPlanoId = (TextBox)Fv.FindControl("Bod_Archivo_Plano_Id");
        Response.Redirect("~/BOD/BOD_ARCHIVO_PLANO.aspx?Bod_Archivo_Plano_Id=" + BodArchivoPlanoId.Text);
    }

    protected void Btn_Bod_Archivo_Plano_Listado_Click(object sender, EventArgs e)
    {
        TextBox BodArchivoPlanoId = (TextBox)Fv.FindControl("Bod_Archivo_Plano_Id");
        Response.Redirect("~/BOD/BOD_ARCHIVO_PLANO_LISTADO.aspx?Bod_Archivo_Plano_Id=" + BodArchivoPlanoId.Text);
    }
}
